package com.zw.a.basic.a10.demo02_list;

import java.util.ArrayList;
import java.util.List;

//案例: 演示List集合的特有成员方法, 主要是针对于: 带索引的操作.
/*
    List集合中的特有成员方法:
        public void add(int index, E element);   在指定的位置插入指定的元素
        public E remove(int index);              根据索引, 移除指定的元素, 并返回此元素.
        public E set(int index, E element)       修改指定索引处的元素未指定的值, 并返回修改前的元素.
        public E get(int index)                  根据索引, 获取其对应的元素.

    细节:
        上述的四个方法, 涉及到的索引如果不存在, 则会报: IndexOutOfBoundsException(索引越界异常)
 */
public class Demo02 {
    public static void main(String[] args) {
        //1.创建List集合, 用来存储字符串.
        List<String> list = new ArrayList<>();
        //2.往List集合中添加3个字符串值, 分别是: "hello", "world", "java".
        list.add("hello");
        list.add("world");
        list.add("java");
        //3.演示上述的4个方法.
        //测试  public void add(int index, E element);   在指定的位置插入指定的元素
        //list.add(10, "黑马程序员");      //报错, 索引越界.
        //list.add(3, "黑马程序员");        //不报错


        //测试 public E remove(int index);              根据索引, 移除指定的元素, 并返回此元素.
        //System.out.println(list.remove(11));        //报错, 索引越界.
        //System.out.println(list.remove(1));          //不报错

        //测试public E set(int index, E element)       修改指定索引处的元素未指定的值, 并返回修改前的元素.
        //list.set(10, "黑马程序员");      //报错, 索引越界.
        //list.set(3, "黑马程序员");        //报错, 索引越界.
        //list.set(1, "黑马程序员");         //不报错

        //测试 public E get(int index)                  根据索引, 获取其对应的元素.
        /*System.out.println(list.get(0));
        System.out.println(list.get(1));
        System.out.println(list.get(2));
        System.out.println(list.get(3));*/

        //打印集合.
        System.out.println("list: " + list);
        System.out.println("------------------------");


        List<Integer> list2 = new ArrayList<>();
        list2.add(1);
        list2.add(2);
        list2.add(3);
        list2.add(4);
        list2.add(5);

        list2.remove(3);    //如果集合的泛型是Integer类型, 传入值后, 是按照索引走的.
        System.out.println(list2);  //1235



    }
}
